In distributed computing systems having a service oriented architecture, services may be provided by multiple servers at various locations. For a client to utilize available services, the client must know a service address and a service policy (including protocol and message format requirements) of the services. In conventional service oriented architectures, service addresses and service policies are maintained in a service registry along with service descriptions.
Conventional service directories are static directories that do not track whether services in the directory are online or offline. To determine if a service is online, a client typically needs to send a message to the service. If no response is received, then the client can determine that the service is unavailable, and attempt to contact a different service. This can cause unnecessary delay and increased network traffic.